<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>质数判断优化（break）</title>
    <script>
        /* 质数判断优化 */

        //测试如下程序的性能
        //再程序执行前，开始计时器
        //console.time("字符串");可以用来开启一个计时器
        //他需要一个字符串为参数，这个字符串将会作为计时器的标识符
        /* console.time("test");
        for (var a = 2; a <= 100; a++) {
            //创建一个布尔值，用来保存结果，默认a是质数
            var flag = true;

            //判断a是否为质数
            //获取2-a之间的所有的数
            for (i = 2; i < a; i++) {
                //判断a是否能被i整除
                if (a % i == 0) {
                    //如果进入判断，则证明a不是质数
                    flag = false;
                    //一旦进入判断，则证明a不是质数，此时在执行循环已经没有意义
                    //使用break来结束循环
                    break;
                }


            }
            if (flag) {
                document.write("1-100所有的质数为：" + a + "<br/>");
            }
        }
        //for循环结束之后终止计时器
        //console.timeEnd()用来停止一个计时器，需要一个计时器的名字作为参数
        console.timeEnd("test"); */




        /* 输出1-100的质数-优化 */
        /* 
        Math.sqrt();
        该方法可以对一个数进行开方
        缩小范围
        */



        //1-100之间所有的数
        //设置一个定时器
        console.time("test");
        for (var i = 2; i <= 10000; i++) {
            //增加一个布尔值，用来保存结果，默认i为质数
            var flag = true;
            //判断i是否为质数
            //获取2-i之间的所有数
            for (j = 2; j < Math.sqrt(i); j++) {
                if (i % j == 0) {
                    //如果进入判断则证明i不是质数
                    flag = false;
                    break;
                }
            }
            if (flag) {
                document.write("1-100所有的质数为：" + i + "<br/>");
            }
        }
        console.timeEnd("test");
    </script>
</head>

<body>

</body>

</html>